#!/usr/bin/env python3
"""
生产环境启动脚本
支持多种启动方式：开发模式、Gunicorn、Waitress
"""
import os
import sys
from dotenv import load_dotenv

def main():
    """主启动函数"""
    # 加载环境变量
    load_dotenv()
    
    # 获取启动模式
    mode = os.getenv('START_MODE', 'waitress').lower()
    
    if mode == 'development':
        # 开发模式
        from app import app
        with app.app_context():
            from app import db
            db.create_all()
        app.run(debug=True, host='0.0.0.0', port=5000)
        
    elif mode == 'gunicorn':
        # Gunicorn模式（Linux推荐）
        os.system('gunicorn --bind 0.0.0.0:8000 --workers 4 --timeout 120 wsgi:application')
        
    elif mode == 'waitress':
        # Waitress模式（Windows友好）
        from waitress import serve
        from wsgi import application
        
        # 创建数据库表
        with application.app_context():
            from app import db
            db.create_all()
        
        # 启动服务器
        host = os.getenv('HOST', '0.0.0.0')
        port = int(os.getenv('PORT', 8000))
        
        print(f"启动服务器: http://{host}:{port}")
        serve(application, host=host, port=port, threads=4)
        
    else:
        print(f"未知的启动模式: {mode}")
        print("支持的模式: development, gunicorn, waitress")
        sys.exit(1)

if __name__ == '__main__':
    main()
